ModelState
ModelState 是一個在 ASP.NET MVC 中非常重要的類,它用於追蹤模型綁定過程中的狀態、錯誤等信息。當表單提交後,你可以使用 ModelState.IsValid 來檢查用戶輸入是否有效。
例如:
[HttpPost]
public ActionResult Create(TodoItem item)
{
if (ModelState.IsValid)
{
// 保存數據,比如寫入數據庫等
//...
return RedirectToAction("Index");
}
else
{
// 如果模型狀態無效,則重新顯示表單,並顯示錯誤信息
//...
return View(item);
}
}
在這個例子中,如果模型狀態無效(例如,必須的字段為空、數字不在指定範圍內等),則用戶會被導回原始表單,並看到錯誤信息。
綁定屬性([Bind] 屬性)
你可以使用 [Bind] 屬性來更細致地控制哪些模型屬性應該被綁定。這是一種安全機制,以防止過多的資料被提交到模型。
例如:
[HttpPost]
public ActionResult Create([Bind(Include="Title,IsDone")] TodoItem item)
{
// 你的邏輯
//...
return View();
}
在這個例子中,僅 Title 和 IsDone 屬性會被綁定,其他的 TodoItem 屬性(如果有的話)將不會被綁定。
自定義模型綁定
雖然 ASP.NET MVC 提供了豐富的模型綁定選項,但有時你可能需要更多的控制權。在這些情況下,你可以實現自己的模型綁定器。
例如,你可能需要對用戶輸入進行特定的清理或轉換操作,或者你可能需要從多個來源(如HTTP頭部、Cookie等)綁定數據。
總結,第14天專注於更深入地了解和運用模型綁定。你會學習如何使用 ModelState 來追蹤和驗證用戶輸入,如何使用 [Bind] 屬性來控制綁定行為,以及如何實現自定義模型綁定器來處理特殊情況。這一天的學習將使你能更有效地控制用戶輸入和後端模型之間的交互,從而使你的應用更加健壯和靈活。